.\"   $Id: beh.3,v 1.1 2002/04/04 14:54:48 ludo Exp $
.\" @(#)beh.2 108  Feb 15 1995 UPMC; Pirouz BAZARGAN SABET
.TH BEH 3 "October 1, 1997" "ASIM/LIP6" "cao\-vlsi reference manual"

.so man1/alc_origin.1
.SH NAME
.PP
\fBBEH\fP \- Generic behavioural data structures

.SH DESCRIPTION
.PP
\fBBEH\fP is a generic data structure supporting vlsi concepts.
It allows representation of a behavioral description in a data structure.

.PP
The goal of \fBBEH\fP is to define an ad hoc single data structure (object),
with well known fixed meaning for each concept manipulated within a behavioural
description. So any tools that needs to work with a behavioral view can be
build upon it using these structures.

.PP
For each object (data structure), a set of functions has been defined in order
to add, delete or access it. These functions are defined in a low\-level library
\fIlibBeh108.a\fP. Some other functions are higher level. They are defined in a
high\-level library \fIlibBhl108.a\fP. There are also some parsers\-drivers.
A pareser reads a behavioural description file in a given format and build up a
complete \fBBEH\fP data base. A driver creates a text file in a given
behavioural description format from a \fBBEH\fP data base. A VHDL
parser\-driver is available in the \fIlibBvl103.a\fP library.

.PP
The behavioural view envolves the following notions:

.TP 20
\fIfigure\fP
behavioural representation of a circuit (see \fBBEFIG\fP).
.TP 20
\fIport list\fP
ordered list of the circuit's logical ports (see \fBBEPOR\fP).
.TP 20
\fIgeneric\fP
a global data (constants) relative to a circuit other than logical ports (see
\fBBEGEN\fP).
.TP 20
\fIsimple output\fP
a simple output port of the circuit (see \fBBEOUT\fP). 
.TP 20
\fIbused output\fP
a bused output port of the circuit (see \fBBEBUS\fP).
.TP 20
\fIinput\fP
an input port of the circuit (see \fBBERIN\fP).
.TP 20
\fIinternal register\fP
an internal memorizing element (see \fBBEREG\fP).
.TP 20
\fIinternal signal\fP
an internal simple signal of the circuit (see \fBBEAUX\fP).
.TP 20
\fIinternal bus\fP
an internal bused signal of the circuit (see \fBBEBUX\fP).
.TP 20
\fIassert\fP
a condition, noticed by the circuit designer, that insures a correct usage of
the circuit. The validity of these conditions is to be checked continuously at
run time (see \fBBEMSG\fP).

.PP
In order to use \fBBEH\fP, concepts on use of libraries are needed. And, since
these libraries are under development, the code is subject to change.

.PP
To enable work, a static version of each library is always present for the
user. Libraries and header files are suffixed by a number (the library's
version). The programmer can prefer to work with an earlier version of a
library rather than the most recent one. However, it is recommended to adapt
software to libraries as soon as possible in order to spotlight potential
compatibility problems before old libraries are removed.

.PP
A \fImakefile\fP is necessary for all \fBBEH\fP applications.
This is required because any soft must be easily recompilable, and knowing
the needed libraries for a \fBBEH\fP based program is not an easy matter.
It can't be achieved an other way, so do use \fImakefile\fP.

.PP
For each behavioural description format a parser and a driver have been
developed . These are organized in as many separate libraries as description
format. So if a parser or driver changes it is not needed to recompile
\fBBEH\fP. Only a relink of the application is needed.

.PP
In terms of software organization, \fBBEH\fP is split into two libraries
for the basic functions, a header file for structures and variable declarations,
and , up to now, one parser\-driver library for VHDL format.

.PP
It is to be noticed that library's version number is incremented when, at least,
one function composing the library has been modified. Therefore, \fBBEH\fP
libraries may evolve independently form each other.

.ta 1.5i 3i 4.5i
.PP
Here follows the list of the libraries and their contents.

.TP 20
libBeh108.a:
\fBbeh_addbefig,	beh_addbeaux,	beh_addbebux\fP,
\fBbeh_addbegen,	beh_addbebus,	beh_addbemsg\fP,
\fBbeh_addbeout,	beh_addbepor,	beh_addbereg\fP,
\fBbeh_addberin,	beh_addbiabl,	beh_addbinode\fP,
\fBbeh_delbefig,	beh_delbeaux,	beh_delbebux\fP,
\fBbeh_delbegen,	beh_delbebus,	beh_delbemsg\fP,
\fBbeh_delbeout,	beh_delbepor,	beh_delbereg\fP,
\fBbeh_delberin,	beh_delbiabl,	beh_delbinode\fP,
\fBbeh_frebefig,	beh_frebeaux,	beh_frebebux\fP,
\fBbeh_frebegen,	beh_frebebus,	beh_frebemsg\fP,
\fBbeh_frebeout,	beh_frebepor,	beh_frebereg\fP,
\fBbeh_freberin,	beh_frebiabl,	beh_frebinode\fP,
\fBbeh_rmvbefig,	beh_rmvbeaux,	beh_rmvbebux\fP,
\fBbeh_rmvbegen,	beh_rmvbebus,	beh_rmvbemsg\fP,
\fBbeh_rmvbeout,	beh_rmvbepor,	beh_rmvbereg\fP,
\fBbeh_rmvberin\fP

.TP 20
libBhl108.a:
\fBbeh_debug\fP

.PP
The libraries are organized in such a way that no cycle can appear through
calls. It means that if a given library a function calls another function
in another library, then none of the functions of this one does call any
function that belongs to the first library.

.SH EXAMPLE
.PP
In order to use BEH libraries, one needs something like that in its
\fImakefile\fP:

.RS
HEADER = -I/labo/include
.br
LIB = -L/labo/lib -lBeh108 -lBhl108 -lBvl109 -llog200 -lMut315
.RE

.SH SEE ALSO
.PP
mbk(1), log(3)


.so man1/alc_bug_report.1

